/**
 * format.js
 * 实验：格式化输出
 * 
 * 1. 定义一个 user 对象，包含三个字段：name（字符串）, age（数字）, qq（字符串）
 * 2. 使用三种占位符，分别输出三种变量类型：字符串，整数和 JSON 数据
 */

console.log('=== 格式化输出实验 ===\n');

// 1. 定义 user 对象
const user = {
    name: "张三",
    age: 25,
    qq: "123456789"
};

console.log('1. 原始 user 对象：');
console.log(user);
console.log('');

// 2. 使用三种占位符输出不同变量类型

// 字符串占位符 %s
console.log('2. 使用字符串占位符 %s：');
console.log('用户姓名：%s', user.name);
console.log('用户QQ：%s', user.qq);
console.log('');

// 整数占位符 %d
console.log('3. 使用整数占位符 %d：');
console.log('用户年龄：%d 岁', user.age);
console.log('明年年龄：%d 岁', user.age + 1);
console.log('');

// JSON 数据占位符 %j
console.log('4. 使用JSON占位符 %j：');
console.log('完整用户信息：%j', user);
console.log('');

// 5. 混合使用多种占位符
console.log('5. 混合使用多种占位符：');
console.log('用户 %s 今年 %d 岁，QQ号是 %s，完整信息：%j', 
    user.name, user.age, user.qq, user);
console.log('');

// 6. 其他格式化方法演示
console.log('6. 其他格式化方法：');

// 使用 console.log 直接输出
console.log('直接输出：', user);

// 使用 JSON.stringify 格式化
console.log('JSON格式化：', JSON.stringify(user, null, 2));

// 使用模板字符串
console.log(`模板字符串：用户${user.name}，年龄${user.age}，QQ${user.qq}`);

// 使用 util.format (Node.js 内置)
const util = require('util');
console.log('util.format：', util.format('用户：%s，年龄：%d', user.name, user.age));

console.log('\n=== 实验完成 ===');
